/****************************************************************
 *
 *  Auto generated
 *
 ****************************************************************/
#pragma once
#include "../core.h"

namespace noria { namespace io {

	class IFile : public IReflectable
	{
	public:
		virtual void OpenRead(const char* file, const char* encoding = "utf-8") = 0;
		virtual void OpenWrite(const char* file, const char* encoding = "utf-8", bool append = false) = 0;
		virtual void Close() = 0;
		virtual IFile* operator<<(const char* val) = 0;
		virtual IFile* operator<<(const wchar_t* val) = 0;
		virtual IFile* operator<<(int val) = 0;
	};
	DECLARE_DISPOSABLE(IFile);
#define AcCreateFile() IFilePtr(static_cast<IFile*>(Activator::CreateInstance("libnc", "noria.io.File")))
#define AcCreateSshfsFile() IFilePtr(static_cast<IFile*>(Activator::CreateInstance("libnc", "noria.io.sshfs.File")))

}}